# demo02_oop_extend.py  extend: 继承
class Role:
    def __init__(self, name, weapon):
        self.name = name
        self.weapon = weapon
    def show_me(self):
        print("我是 %s 用的武器是 %s" % (self.name, self.weapon))
class Warrior(Role):  # Warrior: 战士
    def __init__(self, name, weapon, ride):
        # 调用父类的init方法
        Role.__init__(self, name, weapon)
        self.ride = ride  # 新添加坐骑的属性
    def attack(self, target):
        print("我是 %s  在和 %s 进行肉搏" % (self.name, target))
class Mage(Role):  # Mage: 法师
    def attack(self, target):
        print("我是 %s 在对 %s 进行远程消耗" % (self.name, target))
if __name__ == '__main__':
    # 在Warrior类中寻找__init__/show_me方法，发现没有
    # 在父类Role中寻找，找到了，调用父类的__init__/show_me方法
    lb = Warrior("吕布", "方天画戟", "赤兔马")
    print(lb.name, lb.weapon, lb.ride)
    # lb.show_me()
    # lb.attack("貂蝉")
    # km = Mage("诸葛孔明", "羽扇")
    # km.show_me()
    # km.attack("黄月英")